It is becoming increasingly rare for businesses to use application programs in isolation from other programs, and applications and systems integration within and between organizations have become vital. As the number of computing-based business applications increases and their interdependencies become more complex, the complexity of this integration is also increasing rapidly. In the modern computing environment, the construction of e-business solutions (business applications implemented using date processing and communications hardware and software) typically requires that the solution design is followed by installation of a large number of products, or components of those products, across a multi-machine topology. Installation in this context means adding products and components to machines within the topology in such a manner that the products and components can run and intemperate properly with all affected programs in the system. Some components are dependent on others and Therefore sets of components must be installed together. Some groups of components must be installed in a particular sequence for The combination of components to operate correctly.
In a multi-tier solution topology which uses a set of components, the separate machines each require different sets of components to be installed onto them. System administrators must, when determining which sets of components are required for the different machines, take into consideration the dependencies between components. For example, to perform required functions, a message broker program may require specific levels of operating system and database support, directory services, a messaging manager for handling network communications, and a set of Java™ classes implementing the Java Message Service interface, which in turn requires a Java run-time environment. (Java is a trademark of Sun Microsystems, Inc). While this is merely one example, it demonstrates that the combination of computer programs' fixed pre-requisites and dependencies which are specific to the functional role of a program within a specific solution can result in great complexity when installing a complete solution. The installation requirements can be difficult to determine and to express concisely and consistently. There is a steep learning curve for potential e-business solution customers who must be aware of all the dependencies of every component, which is not only time-consuming and difficult, leading to long delays in the definition of solution topologies and the deployment of solutions, but it also leads to an error-prone installation process with a commensurate increase in costs in problem diagnosis and rectification.
The rapid growth of the World Wide Web internet service in recent years has fuelled the increasing complexity of computing solutions. There has been an evolution of Web sites from servers of static HTML to enterprise portals providing access to information and the ability to conduct business transactions, for both Web-users and other businesses connected to the Internet. The construction of such systems is a difficult task and one which presents an architect or designer with many choices. It is recognized that organizations that are implementing e-business solutions incorporating enterprise application integration (EAI) may take different approaches, depending on what solutions they are already using.
For example, an organization might be an existing Web-centric business that has already implemented a Web site presenting static HTML, moved on to generation and delivery of dynamic content, and might even have implemented the ability for Web users to conduct business transactions that are served by a Web Application Server in conjunction with a Database Server. Next, the organization needs to include access from these same Web business methods to Enterprise Application Integration (EAI) hubs. Alternatively, an organization might be an existing EAI user that uses asynchronous messaging to communicate between a variety of systems to provide an integrated enterprise. Now the organization wants to provide Web-access to its systems. In other cases, organizations need to construct an entirely new e-business solution architecture.
In each of these examples, the tasks of deciding which set of components need to be installed on each data processing system of a network and then managing the installation of all of the interdependent components are very time consuming and error prone.
Assistance with controlled updating of software packages is provided by U.S. Pat. No. 5,581,764. This discloses automated management of changes in a distributed computing environment, constructing a ‘resource needs list’ for individual computers in response to interrogation of their configurations. The update automation involves a calculation of differences between the currently installed resources and ‘resource needs lists’ for each computer, but it relies heavily on a set of changeable but nevertheless predefined rules for computer configurations (i.e. rules specifying which components should be installed on computers in accordance with configuration policies (‘needs lists’) for different categories of computer and in accordance with their technical capabilities).
Although useful for update management after the configuration policies have been defined, U.S. Pat. No. 5,581,764 does not disclose any solution to the problem faced by a system administrator or solution architect when constructing a data processing solution of determining which set of components are required to enable each computer to perform specific sets of functions or “roles” within the desired data processing solution. There remains a very significant initial task for architects to define configuration policies (‘needs lists’) which specify the set of components to install on each computer to implement an overall e-business solution.
U.S. Pat. No. 5,835,777 and U.S. Pat. No. 6,117,187 describe generating a list of software dependencies and determining which installable resources (shared libraries) are needed by the listed software, but this determination of pre-requisites is limited to predefined minimum pre-requisites of individual software components. This does not involve consideration of the functional roles of each component or computer system within a particular data processing solution. U.S. Pat. No. 6,202,207 also discloses checking lists of standard pre-requisites with no consideration of the role of each component or system in an overall solution.